package com.example.myFirstWebmagic.util;

/**
 * 
 * ClassName: CastUtil 
 * @Description: 转型操作工具类
 * @author xiongyao
 * @date 2017年3月13日
 */
public final class CastUtil {
	
	/**
	 * 
	 * @Description: 转为String型
	 * @param @param obj
	 * @param @return   
	 * @return String  
	 * @throws
	 * @author xiongyao
	 * @date 2017年3月13日
	 */
	public static String castString(Object obj) {
		return castString(obj,"");
	}

	/**
	 * 
	 * @Description: 转为String型，提供默认值
	 * @param @param obj
	 * @param @param defaultValue
	 * @param @return   
	 * @return String  
	 * @throws
	 * @author xiongyao
	 * @date 2017年3月13日
	 */
	private static String castString(Object obj,String defaultValue) {
		return obj!=null ? String.valueOf(obj):defaultValue;
	}
	
	/**
	 * 转为double型
	 */
	
	public static double castDouble(Object obj) {
		return castDouble(obj, 0);
	}
	
	/**
	 * 转为double型，提供默认值
	 */
	public static double castDouble(Object obj,double defaultValue) {
		double value=defaultValue;
		if (obj!=null) {
			String strValue=castString(obj);
			if (StringUtil.isNotEmpty(strValue)) {
				try {
					value=Double.parseDouble(strValue);
				} catch (NumberFormatException e) {
					// TODO: handle exception
					value=defaultValue;
				}
			}
		}
		return value;
	}
	
	/**
	 *转为long型 
	 */
	public static long castLong(Object obj) {
		return castLong(obj, 0);
	}
	
	/**
	 * 转为long型,提供默认值
	 */
	public static long castLong(Object obj,long defaultValue) {
		long value=defaultValue;
		if (obj!=null) {
			String strValue=castString(obj);
			if (StringUtil.isNotEmpty(strValue)) {
				try {
					value=Long.parseLong(strValue);
				} catch (NumberFormatException e) {
					// TODO: handle exception
					value=defaultValue;
				}
			}
		}
		return value;
	}
	
	
	/**
	 * 转为int型
	 */
	public static int castInt(Object obj) {
		return castInt(obj, 0);
	}
	/**
	 * 转为int型，提供默认值
	 */
	public static int castInt(Object obj,int defaultValue) {
		int value=defaultValue;
		if (obj!=null) {
			String strValue=castString(obj);
			if (StringUtil.isNotEmpty(strValue)) {
				try {
					value=Integer.parseInt(strValue);
				} catch (NumberFormatException e) {
					// TODO: handle exception
					value=defaultValue;
				}
				
			}
		}
		return value;
	}
	/**
	 * 转为Boolean型
	 */
	public static boolean castBoolean(Object obj) {
		return castBoolean(obj, false);
	}
	/**
	 * 转为Boolean型，提供默认值
	 */
	public static boolean castBoolean(Object obj,boolean defaultValue) {
		boolean value=defaultValue;
		if (obj!=null) {
			value=Boolean.parseBoolean(castString(obj));
		}
		return value;
	}
}
